home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKitArchive.mbox / mbox / 000033_yackd@idaho.et.byu.edu_Fri Sep 24 17:18 MDT 1993.msg < prev    next >
Internet Message Format  |  1994-10-30  |  18KB

  1. Received: from yvax.byu.edu by maine.et.byu.edu; Fri, 24 Sep 93 17:18:44 -0600
  2. Return-Path: <yackd@idaho.et.byu.edu>
  3. Received: from DIRECTORY-DAEMON by yvax.byu.edu (PMDF V4.2-13 #4169) id
  4.  <01H3C1QGJH8G94GOSM@yvax.byu.edu>; Fri, 24 Sep 1993 17:16:43 MDT
  5. Received: from alaska.et.byu.edu by yvax.byu.edu (PMDF V4.2-13 #4169) id
  6.  <01H3C1QBJBZ4935NUQ@yvax.byu.edu>; Fri, 24 Sep 1993 17:16:34 MDT
  7. Received: from yvax.byu.edu by alaska.et.byu.edu; Fri, 24 Sep 93 17:17:17 -0600
  8. Received: from DIRECTORY-DAEMON by yvax.byu.edu (PMDF V4.2-13 #4169) id
  9.  <01H3C1OOC4EO935PFO@yvax.byu.edu>; Fri, 24 Sep 1993 17:15:15 MDT
  10. Received: from idaho.et.byu.edu by yvax.byu.edu (PMDF V4.2-13 #4169) id
  11.  <01H3C1OKQZHC935QCF@yvax.byu.edu>; Fri, 24 Sep 1993 17:15:10 MDT
  12. Received: by idaho.et.byu.edu; Fri, 24 Sep 93 17:17:03 -0600
  13. Date: Fri, 24 Sep 1993 17:17:03 -0600
  14. From: yackd@idaho.et.byu.edu (Don Yacktman)
  15. Subject: MiscKit summary and proposal:  stirring up the ashes
  16. To: misckit@byu.edu
  17. Message-Id: <9309242317.AA05914@idaho.et.byu.edu>
  18. Content-Transfer-Encoding: 7BIT
  19. Status: RO
  20.  
  21.  
  22.  
  23. Another _very_ long message.  Print this one out and
  24. read it over the weekend when you get bored.  I'm
  25. talking over 350 lines, here.  You have been warned.
  26.  
  27.  
  28. Well, we've all been quiet for a few days.  I've been both
  29. horribly busy _and_ I've been thinking about some of the
  30. replies that I've seen here.
  31.  
  32. Let me recap some of the initial points that need to be
  33. settled...and my current positions and questions.  You'll
  34. note that I've folded many of your ideas into this; if
  35. something was your idea, thanks for the idea.  (I don't
  36. have time to credit everyone here, so refer back to previous
  37. messages if you want to know where various ideas came from.)
  38. What I'm trying to do is summarize and propose a bunch of
  39. policies.  If no one presents significant objections,
  40. these will stand.  Therefore, speak NOW or forever hold
  41. your peace.  Remember that I am human, "born to make
  42. mistakes", and so hope that I've covered all bases, but
  43. if I've made a mistake, or left something out, _please_
  44. let me know so we can get going and started off right!
  45.  
  46.  
  47. (1)  Prefixes.  Look at old message to see what some
  48.     of the ideas are.  There have been very few
  49.     votes, so I suppose most of you couldn't care
  50.     less.  :-)  I have decided that "FOO" is out
  51.     because "FOOKit" just plains sounds nasty.
  52.     Because the tendency right now is to call
  53.     this the MiscKit, I lean towared using "Misc"
  54.     as a prefix...MiscString, Misc*...even though
  55.     I know some folks prefer two-character prefixes.
  56.     But "Misc" doesn't look so bad; what do
  57.     people think?  Can we go with this?  Since
  58.     two of the three current authors like this,
  59.     unless there's a good objection to it, we'll
  60.     probably go with it.
  61.  
  62. (2)  Licensing issues.  This is a mess.  It's very tempting
  63.     to just say "make it PD."  The only problem I have
  64.     with that is that in order for folks to trust the
  65.     code, they need to know it has come from a reliable
  66.     source.  By maintaing a minimum of control I could
  67.     be that source, or anyone who ever took my place,
  68.     if that were to happen.  If it weren't for that
  69.     concern, I'd just go the PD route.  Is there an
  70.     easy way to put this concept into legalese?
  71.  
  72. (3)  Maintaing source.  I am playing collector, integrating
  73.     things into the kit.  The author of a particular
  74.     object still retains any rights they have; the
  75.     version of the kit will fall under the kit's license,
  76.     however.  Outside of the kit, the original author
  77.     can do what they want with the object.  They also
  78.     will be expected to be that object's "moderator"
  79.     which means they will handle bug fixes, enhancements,
  80.     and so on.  If you contribute a subclass of a
  81.     MiscKit object, you own the subclass, but the
  82.     original object belongs to the original owner.
  83.     This way, I have less to do.  I will only accept
  84.     new versions from the object's "owner" and will
  85.     forward anything else to them, for their perusal.
  86.     All I will do is maintain the whole collection,
  87.     taking the objects and adding them to the kit
  88.     and then making sure they work well in concert
  89.     with other kit objects.  If I detect problems, I
  90.     will NOT change an object myself without first
  91.     running it by the original author; I'll follow
  92.     the rule, too.  This method should keep my load
  93.     reasonable.  Note that an author is free to transfer
  94.     responsibility to anyone else if they don't want
  95.     to deal with it, and just wanted to dump an object
  96.     into the kit.  In that case, we'll take volunteers
  97.     from the mailing list who want to do it.  Each
  98.     object will have a credit in it's source and the
  99.     kit will have a top level file with credit in it
  100.     to list who each object's "owner" is so that
  101.     users can route bug reports and requests
  102.     appropriately.  Also, if I get too busy, I will
  103.     move the moderator's job to someone else.  I
  104.     don't expect this to happen, but I reserve the
  105.     right to do so if need be.
  106.  
  107. (4)  Commercial apps that use the MiscKit should give
  108.     acknowledgement of the fact.  Since things change,
  109.     asking more (like ftp or email address to be
  110.     given) would be too difficult.  Two questions
  111.     here:  should the company that sells the app be
  112.     required to provide a pointer to where to get the
  113.     MiscKit if requested?  Should this be mentioned
  114.     when they credit the MiscKit in the app?  (I don't
  115.     think that either is necessary, and most companies
  116.     would do it anyway.)  Should they be required to
  117.     provide the kit to anyone requesting it?  (I
  118.     think not, myself.)
  119.  
  120. (5)  CDROM distributions:  they should ask for permission
  121.     from me, and I can give it.  My main constraint
  122.     will be that the _entire_ distribution be included
  123.     with nothing missing, and un tarred for easy access;
  124.     on a CDROM it shouldn't be tarred-and-compressed.
  125.  
  126. (6)  Third party distributions:  again, obtain permission
  127.     from me first.  The rule will be like POVRay...up
  128.     to $5 per floppy may be charged, but no more, and
  129.     the distribution should be broken up in such a way
  130.     that a minimal number of floppies is used.  (Right
  131.     now, that means no more than one disk, and will
  132.     continue to mean that for a long time; when I give
  133.     permission, this will be spelled out as the terms
  134.     for the permission.)  Oh, and floppy distribs
  135.     should be in a tar/compress or .pkg format.
  136.  
  137. (7)  Modified distributions must be labelled as such.  Only
  138.     I will be able to release an official version, to
  139.     avoid confusion.  (That doesn't mean other versions
  140.     can't be released; they just need to be marked as
  141.     such.)  I will keep releases coming as often as
  142.     necessary so that this isn't a problem.
  143.  
  144. (8)  People who modify the source do NOT have to send the
  145.     mods back to the list; if they do, that's great,
  146.     but it's not a requirement.  (Or to the "owner"
  147.     for that matter.)
  148.  
  149. (9)  What will be accepted into the kit?  Right now we
  150.     have two types of things:  (1) creative interface
  151.     widgets, all of which should be palettized.  (2)
  152.     abstract things which don't need to be on a
  153.     palette, but it's OK if they are.  Most of the
  154.     current objects are (2), but there's more to add...
  155.     Right now, possible contributions should be
  156.     evaluated on a per-item basis, and hopefully a
  157.     pattern will emerge.  I don't wish to turn anyone
  158.     away, so there is that.  As things unfold, we can
  159.     make a decision about things like whether or not
  160.     the library should be split into several libs, each
  161.     of objects likely to be used together.  Right now
  162.     it's not big enough to matter, but later on, we
  163.     may decide that it's too much to link everything
  164.     into every app.  Now, if we could make a shlib
  165.     out of it, this would be irrelevant, but, well,
  166.     we can't do that.  So for now I'm deferring any
  167.     decisions...so let's get on with what people have
  168.     to contribute.
  169.  
  170. If you have an object you might like to contribute to the
  171. kit, please post now to the list saying what the object's
  172. name is (class name), a brief description (method names
  173. if you like, but a one paragraph description of it's
  174. purpose and function would be most helpful), and a rough
  175. estimate of when it might be available.  If it is ready
  176. now, NeXTMail it to me at Don_Yacktman@byu.edu.  If you
  177. want to wait until the licensing is finalized, I understand
  178. and that's fine, but I would like to know what we will
  179. be dealing with, contribution-wise, now.  I think these
  180. responses would be of general interest, so post them to the
  181. list, unless you feel really shy, in which case, send it
  182. to me directly.  This call includes classes, categories,
  183. palettes, and any other resource (sound/tiff/whatever)
  184. that would be good to include in the kit.
  185.  
  186. (10)  For now, it will be up to a developer to make sure
  187.     that any MiscKit resources are included as part
  188.     of an app, in the app wrapper.  Currently, the
  189.     only resource that might be shareable is the tiff
  190.     for the ClockView...which isn't very big.  Thus,
  191.     multiple copies (one in each app with a ClockView)
  192.     is no big deal.  If a _lot_ of resources end up
  193.     being contributed, then we can think about a
  194.     separate /LocalLibrary package to install MiscKit
  195.     resources into.  For now, that's overkill, and
  196.     we won't worry about it.  I appreciate the point
  197.     by Michael Pizolato that resources should be
  198.     encapsulated when they are a necessary part of
  199.     an object.  Until there are enough resources for
  200.     this to be worth the effort, though, I'm going
  201.     to hold off on this.  If (or when) this happens,
  202.     I lean to a MiscKit Installer package that can
  203.     install into /LocalLibrary or ~/Library and
  204.     leave it at that.  (In cases of needing version
  205.     compatability, different subdirectories will be
  206.     used to hold older resources...)  This will be
  207.     implemented so that a user of a MiscKit app sees
  208.     nothing other than a need to install a single
  209.     package.  The MiscKit will handle any and all
  210.     other details automatically.  Someone will need
  211.     to write code to search for the needed resources
  212.     as well.  This is a future project, to be
  213.     undertaken when we find it necessary.  Also,
  214.     a resource in the app wrapper would always
  215.     override a MiscKit shared resource.  Any further
  216.     details of this will be decided upon when we
  217.     have to; until it becomes a problem, I'd like
  218.     to move on to developing objects for the kit.
  219.     (In other words, we'll not discuss this any
  220.     more until we have resources to share!)  I agree
  221.     that it will _become_ important, and needs to
  222.     be thought out very carefully, but right now,
  223.     we'd be wasting time to beat this topic any
  224.     more...how to share resources is not a pertinent
  225.     question until there are resources to share.
  226.     (Note that I understand the arguments for having
  227.     no shared resources whatsoever, and eventually
  228.     we'll need to evaluate both sides.  For now
  229.     I'm advocating status quo, until a change is
  230.     felt to be absolutely necessary.  Status quo
  231.     is no shared resources.)
  232.  
  233. So, what objects to people want to contribute?  What
  234. resources would your object use that could be shared?
  235. If there's enough, well, we'll take this topic up again.
  236. Right now, it's not worth getting in a tizzy over _one_
  237. tiff!  100 tiffs would be another story... :-)
  238.  
  239. (11)  Each contributor will be recognized with a top-level
  240.     file in the MiscKit that list who was contributed
  241.     code to each object.  There will also be a file to
  242.     direct people to the "owner" of an object for bug
  243.     reports and such.  At the start of an object's
  244.     code and in it's header will be similar information,
  245.     look at the current MiscKit objects for examples.
  246.  
  247. (12)  Object "owner's" responsibilities should include the
  248.     following:
  249.     * Accept bug reports.  Fix problems or find someone
  250.         to fix the problems.  We don't want buggy
  251.         code; if it's not really a bug, then...
  252.     * Accept requests for enhancements and other
  253.         improvements.  Note that some suggestions
  254.         won't be to your liking.  Tough.  Even if
  255.         it wasn't your idea, if it's good, consider
  256.         doing it.  If you don't know how, say so
  257.         and ask the list if someone can do it;
  258.         there's no shame in that, and this is a
  259.         community project.  There's no room for
  260.         ego here.  (If you provide a .nib interface
  261.         to an object, say, like a Find panel--which
  262.         is an object I'd like to add to the kit,
  263.         if there's a willing contributor--perhaps
  264.         many different .nibs could be provided as
  265.         examples for developers to pick from.)
  266.         Basically, all I'm saying here is to treat
  267.         requests with respect and welcome them.  I
  268.         know this all sounds like common sense to
  269.         most of us, and we all want to avoid annoying
  270.         other people, but I have had some people
  271.         privately voice concerns to me about this.
  272.         I want this project to be professional and
  273.         well received by the community at large,
  274.         and our own "agreeableness" will play a
  275.         large factor in this.  Hopefully this will
  276.         never actually be a problem.  :-)
  277.     * Accept new code to add to an object.  This is
  278.         optional.  If you don't want to have others
  279.         contribute to your object, that is OK and
  280.         will be noted in the kit's documentation.
  281.         I can't see any real reason you wouldn't
  282.         want to accept other's code, but that's
  283.         a personal decision.  I'll take anything
  284.         people want to send me for my objects. :-)
  285.     * Provide, with the object, a .h and .m file and
  286.         a .rtf class spec.  (Note that the owner
  287.         is expected to keep the .rtf up to date
  288.         with the object itself.  This is important.
  289.         Source code is no substitute for good docs.)
  290.         If you want, and if appropriate, you should
  291.         maintain an IB palette with appropriate
  292.         inspectors, etc.  It is OK to have one
  293.         person "own" an object and another to
  294.         "own" the palette, however, as long as
  295.         both work together to keep in sync.  Also,
  296.         any .nibs (like Find panels, in the example
  297.         above) are to be maintained by the _object_
  298.         owner (not the palette; they only handle
  299.         the IB palette and the inspector...).
  300.         And, they can provide any other necessary
  301.         resources, too, as needed.
  302.     * Supply changes to me to include in the MiscKit.
  303.         Releases of the MiscKit will depend on how
  304.         often you submit changes to me.  I'll try
  305.         and keep the turn around time in the day
  306.         to week range, and I will alert the MiscKit
  307.         mailing list before releases so that you
  308.         can get changes to me before releases.
  309.         Of course, being a freebie project, there
  310.         are no deadlines for _you_:  send me changes
  311.         when you want/have them ready.  I'll make
  312.         releases as they come in, letting others
  313.         add to a particular release if they have
  314.         something ready.
  315.     * The author of the original object holds the
  316.         copyright on that object, and the object
  317.         therefore appears in the MiscKit by
  318.         permission of the copyright owner.  The
  319.         copyright may be transferred to the
  320.         "owner", if someone other than the object's
  321.         author is handling maintenance.  Any code
  322.         submitted and added to the object becomes
  323.         part of the object for legal pruposes and
  324.         therefore legally belongs to the copyright
  325.         owner.  I think this is the most sensible
  326.         way to handle this; it would be too hard
  327.         to have an object with each section (C)
  328.         by somebody else...
  329.  
  330. (13)  I'd like to have a file at the top level, a sort of
  331.     "to do" list, of suggested enhancements and desireable
  332.     objects that could be worked on.  It can list who
  333.     is doing a particular thing, or say that it's open
  334.     for anyone to work on.
  335.  
  336. So, if there's an object that you would like to _see_ in
  337. the MiscKit, tell us about it now.  Maybe someone will
  338. volunteer to do it!
  339.  
  340. (14)  Backward compatibility:  Guaranteed for minor revisions
  341.     but not for major revisions.  Personally, I will try
  342.     for it whenever I can, but, and this is the key:  Do
  343.     not choose backward compatability when it will make
  344.     your design worse.  Better to have good objects than
  345.     lousy ones.  We want these objects to be _the_best_
  346.     free objects in the world, don't we?  As to resources,
  347.     if they aren't shared, it's no biggie.  When (if) we
  348.     go to using shared resources, they will have to be
  349.     backward compatible, and the MiscKit resource directory
  350.     will be structured in such a way that new resources
  351.     will not overwrite the old.  I think that backward
  352.     compatibility will end up being most important with
  353.     regards to resources, and less important on programming
  354.     API (but not too bad to achieve in most cases). So,
  355.     backward compatibility only when it won't interfere
  356.     with progress.  I do NOT want a software equivalent
  357.     of the Intel processor design.  Similiar success would
  358.     be OK, but I don't want us keeping around "crufty
  359.     old code", as it was put, just for the sake of that
  360.     one app that the developer won't recompile...
  361.  
  362.  
  363.  
  364. Well, if I left anything out, left something unclear, or
  365. said something you don't like, let's hear about it so that
  366. I can fix it now.
  367.  
  368. Over the weekend I plan to take some time out and draft
  369. up a preliminary license and set up a new prefix.  A new
  370. MiscKit will be released early next week, most likely on
  371. Monday, containing these changes.  If you really don't
  372. like "Misc" as a prefix, tell me *_NOW_* before I make
  373. the change!  (Note that I will make my draft license from
  374. the one proposed by Christopher Kane; I liked a lot of
  375. his ideas, as the above message shows, I summed up a lot
  376. of it...)  Also, I realize that some won't get a chance
  377. to object to "Misc" before I release the kit (if I do
  378. it Monday), so if a _real_ good objection comes up after
  379. the fact, I'll consider changing it again.  But, "DAY"
  380. will disapper utterly by next week. (No, not me, just
  381. the prefix.  :-)   )
  382.  
  383.  
  384. Later,
  385. -don
  386.  
  387.  
  388. Don_Yacktman@byu.edu                  Nepotism is a relative thing.
  389.